想必大家都對資料有一定的認識,以我們生活中常看的電影為例,電影名稱、發行年份、導演、演員等等都是有關這部電影的資料,當這些具有屬性的資料集合起來,就會變成資料表(table)。當很多資料表組合起來,就會形成資料庫(database)。
圖一的資料表是電影的資訊,圖二的資料表是每部電影對應到的演員id,圖三則是所有演員id對應到名字的資料表,三張資料表合起來就可以稱作一個資料庫。
圖一
圖二
圖三
資料來源:https://www.imdb.com/chart/top
那先來看怎麼判讀關聯式資料庫中的資料表,會對關聯式資料庫有更明確的瞭解
如何判讀一張資料表(table)
儲存在關聯式資料庫中的資料結構是兩個維度的,是由欄和列所組成,以圖一解釋:
列 (row):
稱為觀測值(observations),完整呈現一筆資料的內容
如 id 為1, title為 "The Shawshank Redemption", release_year為1994,就是id為1這筆資料的觀測值。
欄(column) :
稱為變數(variables),代表同一種資料屬性
"1994","1972","2008"等等年份的值就是屬於“release_year"欄位
格子(cell):
存放一筆資料內,某個變數下的觀測值(value)
在知道怎麼看懂一張table後,我們就可以來看什麼是關聯式資料庫了
關聯式資料庫主要是儲存結構化的資料,資料是被包裝在由row跟column組成的表格內,而每個row都需要特定的key去辨別該筆資料,我們常見的excel表格就是最廣為人知的關聯式資料庫
在資料與資料之間都具有一定程度的關聯。像是圖一的電影id就可以對應到圖二的該電影出演的演員id,而演員id又可以對應到演員的名稱。所以我們當我們想知道哪部電視有哪個演員出演,就可以透過關聯式資料庫,藉由三張表的關聯性找到出演的演員姓名。
除了關聯式資料庫以外的都可以稱作是NoSQL
有以下幾種例子
隨著應用程式的飛快發展,許多數據已經不像以往需要如此結構化的處理,
關聯式資料庫通常是著重在精準同步的處理被結構化處理過後的數據
但現在facebook, instagram上的使用者的需求反而不再要求精準與同步
以Kylie發布一則instagram的貼文舉例,隨隨便便就會有近一千萬人按愛心
幾秒內也會湧入數十萬筆的留言,留言中又會有其他留言
使用者不會在意有沒有及時知道幾個人留言
也不需要知道有誰按了愛心有誰又取消
instagram不用再去著重在即時的精準同步資料,
反而需要處理如何管理爆炸式出現的資訊量
非關連式資料庫就會派上用場
DBMS並不是儲存資料的場所,是作為是作為使用者和資料庫的中間溝通管道,
方便使用者創造、維護、更新、刪除在真實資料庫的龐大資料。
舉例來說momo購物網站上若是要管理背後的資料庫,
並不是直接去取用資料庫,
而是告訴資料庫管理系統去間接操作,
簡化操作數據的流程。
DBMS有以下幾種特色
關聯式資料庫管理系統為目前市面上最常見的也最廣為接受的,目前主流的有
在這次的計畫裡我選擇SQLite為自學的主題
今天的資料庫簡介就到這裡~~~
之後就會開始操作資料庫了!